<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Neuron (Apache Commons Math 3.6.1 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Neuron (Apache Commons Math 3.6.1 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Neuron.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Network.NeuronIdentifierComparator.html" title="class in org.apache.commons.math3.ml.neuralnet"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/SquareNeighbourhood.html" title="enum in org.apache.commons.math3.ml.neuralnet"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/ml/neuralnet/Neuron.html" target="_top">Frames</a></li>
<li><a href="Neuron.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.ml.neuralnet</div>
<h2 title="Class Neuron" class="title">Class Neuron</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.ml.neuralnet.Neuron</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">Neuron</span>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
<div class="block">Describes a neuron element of a neural network.

 This class aims to be thread-safe.</div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>3.3</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../serialized-form.html#org.apache.commons.math3.ml.neuralnet.Neuron">Serialized Form</a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#compareAndSetFeatures(double[],%20double[])">compareAndSetFeatures</a></strong>(double[]&nbsp;expect,
                     double[]&nbsp;update)</code>
<div class="block">Tries to atomically update the neuron's features.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html" title="class in org.apache.commons.math3.ml.neuralnet">Neuron</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#copy()">copy</a></strong>()</code>
<div class="block">Performs a deep copy of this instance.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#getFeatures()">getFeatures</a></strong>()</code>
<div class="block">Gets the neuron's features.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#getIdentifier()">getIdentifier</a></strong>()</code>
<div class="block">Gets the neuron's identifier.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#getNumberOfAttemptedUpdates()">getNumberOfAttemptedUpdates</a></strong>()</code>
<div class="block">Retrieves the number of calls to the
 <a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#compareAndSetFeatures(double[],%20double[])"><code>compareAndSetFeatures</code></a>
 method.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#getNumberOfSuccessfulUpdates()">getNumberOfSuccessfulUpdates</a></strong>()</code>
<div class="block">Retrieves the number of successful calls to the
 <a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#compareAndSetFeatures(double[],%20double[])"><code>compareAndSetFeatures</code></a>
 method.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#getSize()">getSize</a></strong>()</code>
<div class="block">Gets the length of the feature set.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="copy()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html" title="class in org.apache.commons.math3.ml.neuralnet">Neuron</a>&nbsp;copy()</pre>
<div class="block">Performs a deep copy of this instance.
 Upon return, the copied and original instances will be independent:
 Updating one will not affect the other.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>a new instance with the same state as this instance.</dd><dt><span class="strong">Since:</span></dt>
  <dd>3.6</dd></dl>
</li>
</ul>
<a name="getIdentifier()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIdentifier</h4>
<pre>public&nbsp;long&nbsp;getIdentifier()</pre>
<div class="block">Gets the neuron's identifier.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the identifier.</dd></dl>
</li>
</ul>
<a name="getSize()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSize</h4>
<pre>public&nbsp;int&nbsp;getSize()</pre>
<div class="block">Gets the length of the feature set.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the number of features.</dd></dl>
</li>
</ul>
<a name="getFeatures()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFeatures</h4>
<pre>public&nbsp;double[]&nbsp;getFeatures()</pre>
<div class="block">Gets the neuron's features.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>a copy of the neuron's features.</dd></dl>
</li>
</ul>
<a name="compareAndSetFeatures(double[], double[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>compareAndSetFeatures</h4>
<pre>public&nbsp;boolean&nbsp;compareAndSetFeatures(double[]&nbsp;expect,
                            double[]&nbsp;update)</pre>
<div class="block">Tries to atomically update the neuron's features.
 Update will be performed only if the expected values match the
 current values.<br/>
 In effect, when concurrent threads call this method, the state
 could be modified by one, so that it does not correspond to the
 the state assumed by another.
 Typically, a caller <a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#getFeatures()"><code>retrieves the current state</code></a>,
 and uses it to compute the new state.
 During this computation, another thread might have done the same
 thing, and updated the state: If the current thread were to proceed
 with its own update, it would overwrite the new state (which might
 already have been used by yet other threads).
 To prevent this, the method does not perform the update when a
 concurrent modification has been detected, and returns <code>false</code>.
 When this happens, the caller should fetch the new current state,
 redo its computation, and call this method again.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>expect</code> - Current values of the features, as assumed by the caller.
 Update will never succeed if the contents of this array does not match
 the values returned by <a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#getFeatures()"><code>getFeatures()</code></a>.</dd><dd><code>update</code> - Features's new values.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if the update was successful, <code>false</code>
 otherwise.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if the length of <code>update</code> is
 not the same as specified in the <a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#Neuron(long,%20double[])"><code>constructor</code></a>.</dd></dl>
</li>
</ul>
<a name="getNumberOfAttemptedUpdates()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumberOfAttemptedUpdates</h4>
<pre>public&nbsp;long&nbsp;getNumberOfAttemptedUpdates()</pre>
<div class="block">Retrieves the number of calls to the
 <a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#compareAndSetFeatures(double[],%20double[])"><code>compareAndSetFeatures</code></a>
 method.
 Note that if the caller wants to use this method in combination with
 <a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#getNumberOfSuccessfulUpdates()"><code>getNumberOfSuccessfulUpdates()</code></a>, additional synchronization
 may be required to ensure consistency.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the number of update attempts.</dd><dt><span class="strong">Since:</span></dt>
  <dd>3.6</dd></dl>
</li>
</ul>
<a name="getNumberOfSuccessfulUpdates()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getNumberOfSuccessfulUpdates</h4>
<pre>public&nbsp;long&nbsp;getNumberOfSuccessfulUpdates()</pre>
<div class="block">Retrieves the number of successful calls to the
 <a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#compareAndSetFeatures(double[],%20double[])"><code>compareAndSetFeatures</code></a>
 method.
 Note that if the caller wants to use this method in combination with
 <a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Neuron.html#getNumberOfAttemptedUpdates()"><code>getNumberOfAttemptedUpdates()</code></a>, additional synchronization
 may be required to ensure consistency.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the number of successful updates.</dd><dt><span class="strong">Since:</span></dt>
  <dd>3.6</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Neuron.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/Network.NeuronIdentifierComparator.html" title="class in org.apache.commons.math3.ml.neuralnet"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/ml/neuralnet/SquareNeighbourhood.html" title="enum in org.apache.commons.math3.ml.neuralnet"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/ml/neuralnet/Neuron.html" target="_top">Frames</a></li>
<li><a href="Neuron.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
